define([
        'views/loginView',
        'views/headerView',
        'views/homeView',
//        'views/collectionView'
],function(loginView,headerView,homeView/*,collectionView*/){
	var AdamRouter = Backbone.Router.extend({
	
		initialize:function(){
			this.loginView=null;
			this.headerView=null;
			this.headerRendered=false;
		},
		
		routes:{
		
			"login" : "login",
			"home" : "home",
//			"listRecords/:layout/:page" : "allRecords",
			//"datailRecord/:layout/:id" : "detailRecord",
			"*actions" : "login"
		},
		
		login:function(){
			
			//se l'utente è loggato, rimanda alla home page
			if(true){//Adam.State.isLogged()){
				this.navigate("home",true);
			}
			else{
				console.log("router login");
				if(!this.loginView)
					this.loginView=new loginView({el:"#content"});
				
				this.loginView.render(); 
				
				//se prima era renderizzato l'header, imposta il flag per avvisare che non è più presente
				if(this.headerRendered)
					this.headerRendered=false;
			}
		},
		
		home: function(){
			this.renderHeader();
			var home=new homeView({el:"#subview"});
			
			home.render(); 
		},
		
/*		allRecords: function(layout,page){
			page = page || 1;
			
			var table = new collectionView({
				collection:Adam.State.getTable(layout),
				page:page
			});
			table.render();
		},*/
		
		renderHeader: function(){
			//controlla se l'utente è loggato. Se non lo è rimanda alla schermata di login
			if(true){//Adam.State.isLogged()){
				//se non è instanziata la vista dell'header, la carica
				if(!this.headerView)
					this.headerView = new headerView({el:"#content"});
				//se l'header non è già renderizzato nella pagina lo renderizza. Se c'è già non fa nulla
				if(!this.headerRendered)
					this.headerView.render();
			}
			else
				this.navigate("login",true);
		}
	
	});
    
    return {
        initialize: function(){
            var router = new AdamRouter;
            Backbone.history.start();
        }
    };
});
